/* 分类相关的ts类型 */
//分类相关的基本数据的ts类型
export interface ResponseData {
  code: number
  message: string
  ok: boolean
}
//分类对象的ts类型
export interface CategoryObj {
  // 服务器返回的id是number, 仓库初始化的id是string
  id: number | string
  name: string
  category1Id?: number
  category2Id?: number
}
//相应的分类接口返回数据的ts类型
export interface CategoryResponseData extends ResponseData {
  data: CategoryObj[]
}

/* 属性与属性值相关的ts类型 */
//属性值对象的ts类型
export interface AttrValue {
  // 属性值的id
  id?: number
  // 一个属性值
  valueName: string
  // 所属属性的id
  attrId?: number
  // 控制每一个属性值编辑模式与查看模式的切换
  flag?: boolean
}
//属性值数组的ts类型 -- 每个属性,可能有多个属性值
export type AttrValueList = AttrValue[]
//属性对象
export interface Attr {
  // 属性id
  id?: number
  // 属性名
  attrName: string
  // 某分类级数的分类id
  categoryId: number | string
  // 分类级数 -- 永远是3
  categoryLevel: number
  // 属性值对象数组
  attrValueList: AttrValueList
  // 属性ID和属性值ID组成的字符串
  attrIdAndValueId?: string
}
//属性对象数组的ts类型
export type AttrList = Attr[]
//属性接口返回数据的ts类型
export interface AttrResponseData extends ResponseData {
  data: AttrList
}
